#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//算法：同向指针+哈希表
//在字符串上移动滑动窗口，保证窗口内有不超过k个不同的字符，同时在每一步更新最大字串长度

int main(int argc, char *argv[])
{
	int k, i, j, count, max = 0;
	int hash[26];
	char arr[101];
	scanf("%s", arr);
	scanf("%d", &k);
	for (i = 0; arr[i]; i++)
	{
		int key = k; // 记录剩余可重复的字符的个数
		count = 0;//记录连续子串的个数
		memset(hash, 0, sizeof(hash));//将hash数组中的所有元素初始化为0
		for (j = i; arr[j]; j++)//循环条件为arr[j]，即遍历从当前位置i开始的子串
		{
			//通过hash[arr[j]-'a']++将当前字符的出现次数加1，并判断是否是第一次出现。
			if (hash[arr[j] - 'a']++ == 0)//如果当前字符是第一次出现
			{
				if (key-- == 0)//key减1，如果key为0，说明当前子串的重复字符个数已经超过了k，需要结束循环
					break;
				count++;//表示找到了一个新的字符
				if (count == 2)//找到了两个不同的字符
					i = j - 1; // 配合下一次循环的i++
			}
			else
			{
				count++;//找到一个重复字符
			}
		}
		if (count > max)
			max = count;
		if (arr[j] == '\0')
			break;
	}
	printf("%d", max);
	return 0;
}